﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
using BOL;
using System.Data.Linq;
using System.Data.SqlClient;
using Website.Logger;
using System.IO;
using System.Drawing;

namespace UILGestion.ObraAdmin
{
    public partial class PresupuestoListForm : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {

                try
                {

                    idObra.Value = (string)Request.QueryString["idObra"];
                    menuObraCtrl1.loadMenu(int.Parse(idObra.Value), Request.AppRelativeCurrentExecutionFilePath);
                    FormatForm();


                }
                catch (SqlException sqlex)
                {
                    WebServerSideSqlError.Log(sqlex);

                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


                }
                catch (Exception ex)
                {
                    WebServerSideError.Log(ex);
                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                         "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

                }


            }
        }
        //private void PresupuestoFind()
        //{
        //    //dbGestionDataContext _db;

        //    //_db =
        //    //    new dbGestionDataContext(Parametros.strConnString);

        //    //(DD/MM/yyyy)
        //    System.IFormatProvider MiFp =
        //                                                new System.Globalization.
        //                                                CultureInfo("es-ES", false);
        //    //valores de parametro
        //    //  int idObra =int.Parse( idObra);
        //    ////  int.TryParse(obraDropDownList.SelectedValue, out idObra);
        //    DateTime fechaInicio = new DateTime(2010, 1, 1);
        //    DateTime fechafin = DateTime.Now;

        //    if (inicioDateTime.Text.Length > 0)
        //    {
        //        fechaInicio =
        //            System.DateTime.ParseExact(inicioDateTime.Text, "dd/MM/yyyy", MiFp);
        //    }
        //    if (finDateTime.Text.Length > 0)
        //    {
        //        fechafin =
        //            System.DateTime.ParseExact(finDateTime.Text, "dd/MM/yyyy", MiFp);
        //    }
        //    //IQueryable<view_Presupuesto> q;

        //    //var q = from r in _db.view_Presupuesto
        //    //    where r.idObra == int.Parse(idObra.Value)
        //    //    select r;
            
        //   BOL.PresupuestoBL bol= new PresupuestoBL();



        //   PresupuestoGridView.DataSource = bol.getListPresupuesto(int.Parse(idObra.Value));
          
        //    PresupuestoGridView.DataBind();

        //    grillaUpdatePanel.Update();

        //}

        private void restricionesForm()
        {
            //int idObra = int.Parse();

        }
        private void FormatForm()
        {

        restricionesForm();
            ShowAllComboBox();
            idArchivoLoad.Value = Parametros.GenerarID().ToString();

             inicioDateTime.Text =
                DbUtil.Db.Obras.Single(p => p.idInternal == int.Parse(idObra.Value)).fechaInicio.Value.ToShortDateString();
            finDateTime.Text = DateTime.Now.ToShortDateString();
         
           
          //  PresupuestoFind();
            //estadistica();

            //         string Lang = "es-ES";  //para controlar el idioma 
            //         System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo
            //(Lang);

            //ImportPresupuestoLinkButton.OnClientClick =
            //    WindowPresupuesto.GetShowReference("../Admin/PresuImportForm.aspx", "Importacion Presupuesto");
        }


        protected void ShowAllComboBox()
        {



            var mod = from a in DbUtil.Db.Monedas
                      select a;

            monedaInsertDropDownList.DataTextField = "descripcion";
            monedaInsertDropDownList.DataValueField = "idInternal";

            monedaInsertDropDownList.DataSource = mod.ToList();
            monedaInsertDropDownList.DataBind();

            Obra obra=  DbUtil.Db.Obras.Single(p=>p.idInternal==int.Parse(idObra.Value));

            tipoCambioLabel.Text = obra.tipoCambio.ToString();
       

        }
       

        protected void actualizarButton_Click(object sender, EventArgs e)
        {

           // PresupuestoFind();
        }

        protected void nuevoButton_Click(object sender, EventArgs e)
        {

            Response.Redirect("PresupuestoAdicionInsertForm.aspx?idObra=" + idObra.Value, true);
        }


    
        #region "Carga de presupuesto"
     
        protected void btnSaveContinue_Click(object sender, EventArgs e)
        {

            try
            {
                btnSaveContinue.Enabled = false;

                BOL.PresupuestoBL excel = new BOL.PresupuestoBL();
               

                excel.addFromExcel(lblStatus.Text,
                    nombreTextBox.Text,
                    abreviacionTextBox.Text,
                    int.Parse(idObra.Value),
                    int.Parse(monedaInsertDropDownList.SelectedItem.Value),
                    decimal.Parse(tipoCambioLabel.Text)
                    );

                ModalPartirPopupExtender.Hide();
                grillaUpdatePanel.Update();
              btnSaveContinue.Enabled = true;

            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);
                btnSaveContinue.Enabled = true;

            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);
                btnSaveContinue.Enabled = true;
            }


        }
        
        #endregion

        protected void ExaminarFileUpload_UploadedComplete(object sender, EventArgs e)
        {
           //  System.Threading.Thread.Sleep(5000);
            
                if (ExaminarFileUpload.HasFile)
                {

                    // 1. Save logic

                    //string directorio = AppDomain.CurrentDomain.RelativeSearchPath;

                    // dentro del directorio bin
                    //string directorio = String.Format("\\\\192.168.1.116\\ObraPresupuesto\\{0}\\", idObra.Value);
                    
                    

                    string servcidor = System.Web.HttpContext.Current.Server.MapPath("../App_Data/Presupuesto/"+idObra.Value + "/");


                    ////-------------------------
                    //string ruta = String.Format("C:\\Desarrollo\\EOMGestion\\Datos\\ultimos");
                    //servcidor = ruta;
                    //// retirar luego para no ingre

                    //string directorio = servcidor+String.Format("\\{0}\\", idObra.Value);

                    if (!Directory.Exists(servcidor))
                        Directory.CreateDirectory(servcidor);

                    Session[idArchivoLoad.Value] = servcidor + Path.GetFileName(ExaminarFileUpload.FileName);
                    ExaminarFileUpload.SaveAs((string)Session[idArchivoLoad.Value]);
                    //ExaminarUpdatePanel.Update();
                    lblStatus.Text = ExaminarFileUpload.FileName ;


                    fechaImportacionLabel.Text = DateTime.Now.ToString();
                    nombreTextBox.Text = String.Empty;
                    abreviacionTextBox.Text = String.Empty;
                    Session[idArchivoLoad.Value] = null;
                    ModalPartirPopupExtender.Show();
                    importarUpdatePanel.Update();
                }
        
        }

        protected void PresupuestoGridView_RowDataBound(object sender, GridViewRowEventArgs e)
        {

        }

        protected void refreshButton_Click(object sender, EventArgs e)
        {
            PresupuestoListGrid1.DataBind();
        }

        //protected void PresupuestoGridView_RowCreated(object sender, GridViewRowEventArgs e)
        //{

        //    if (e.Row.RowType == DataControlRowType.DataRow)
        //    {
        //        if ((PresupuestoListInfo)e.Row.DataItem != null)
        //        {
        //            if (((PresupuestoListInfo)e.Row.DataItem).codigo.Contains("Load"))
        //            {
        //                e.Row.BackColor = Color.FromName("#99CCFF");

        //            }

        //        }
        //    }
        //    }

      
      

    }
}